package common.impl;

import net.sf.json.JSONObject;

import common.impl.exception.ServiceException;
import common.interf.IErrorHandle;
import common.interf.IErrorProperty;
public class ErrorHandleImpl implements IErrorHandle{
	private IErrorProperty errorProperty;
	
	public void setErrorProperty(IErrorProperty errorProperty) {
		this.errorProperty = errorProperty;
	}
	

	public String handleErr(Exception e){
		if(null == e)
			return null;
		String eMsg = e.getMessage();
		JSONObject jobj = new JSONObject();
		
		//确定是自定义错误则处理
		if(ServiceException.class.isInstance(e)){
			eMsg = handle(eMsg);
		}
		if(null != eMsg && !"".equals(eMsg)){
			jobj.put("errors", eMsg);
			return jobj.toString();
		}
		return null;
	}
	/*
	 * 处理错误编号
	 * @param errno:错误编号
	 * @return 错误信息
	 */
	private String handle(String errno){
		String msg = errorProperty.getValue(errno);
		if(null == msg)
			msg = errno;
		return msg;
	}
}
